package com.gkzf.ai.module.system.service.appUser;

import com.gkzf.ai.module.system.controller.admin.auth.vo.WxAuthLoginReqVO;
import com.gkzf.ai.module.system.controller.app.appUser.vo.UsersPageReqVO;
import jakarta.validation.*;
import com.gkzf.ai.module.system.dal.dataobject.appUser.UsersDO;
import com.gkzf.ai.framework.common.pojo.PageResult;

/**
 * 用户 Service 接口
 *
 * @author 国科智飞
 */
public interface UsersService {

    /**
     * 创建用户
     *
     * @param usersDO 创建信息
     * @return 编号
     */
    Long createUsers(@Valid UsersDO usersDO);

    /**
     * 更新用户
     *
     * @param usersDO 更新信息
     */
    void updateUsers(@Valid UsersDO usersDO);

    /**
     * 删除用户
     *
     * @param id 编号
     */
    void deleteUsers(Long id);

    /**
     * 获得用户
     *
     * @param mpOpenId 小程序用户标识
     * @return 用户
     */
    UsersDO getUsers(String mpOpenId);

    /**
     * 更新用户信息
     *
     * @param reqVO 更新信息
     */
    void updateUserInfo(WxAuthLoginReqVO reqVO);

    /**
     * 获得用户分页
     *
     * @param pageReqVO 分页查询
     * @return 用户分页
     */
    PageResult<UsersDO> getUsersPage(UsersPageReqVO pageReqVO);

}